package com.meila.cms.dao;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.meila.cms.entity.UserRole;

public interface UserRoleMapper {
	
	/**
	 * 获取用户的所有角色信息
	 * @param userId
	 * @return
	 */
	 List<UserRole> listUserRoles(int userId);
	
	/**
	 * 根据用户和角色获取用户角色的关联对象
	 * @param userId
	 * @param roleId
	 * @return
	 */
	 UserRole loadUserRole(@Param("userId") int userId, @Param("roleId") int roleId);
	
	
	/**
	 * 添加用户角色关联信息
	 * @param userId 用户id
	 * @param roleId 角色id
	 */
	 void addUserRole(@Param("userId") int userId, @Param("roleId") int roleId);
	
	
	
	/**
	 * 根据用户id获取此用户所对应所有的角色id集合
	 * @param id 用户id
	 * @return 获取此用户所对应所有的角色id集合
	 */
	 List<UserRole> listUserRoleIds(@Param("userId") int userId);
	
	
	/**
	 * 删除用户角色关联关系
	 * @param uid 用户id
	 * @param rid 角色id
	 */
	 void deleteUserRole(@Param("userId") int userId, @Param("roleId") int roleId);
	
	/**
	 * 根据用户id，删除用户、角色关联关系（删除用户时，删除全部此用户和角色关联关系）
	 * @param uid 用户id
	 */
	 void deleteUserRoles(@Param("userId") int userId);
	
	
	/**
	 * 根据角色id获取用户列表
	 * @param roleId 角色id
	 * @return 用户角色关联信息
	 */
	 List<UserRole> listRoleUsers(@Param("roleId") int roleId);
	
	/**
	 * 删除角色中的用户信息(角色和用户关系)
	 * @param roleId 角色id
	 */
	 int deleteRoleUsers(@Param("roleId") int roleId);
}